簡(jiǎn)介:體驗(yàn)新一代高性能 Python Web 框架,本課程將從 Hellow World 開(kāi)始引導(dǎo)同學(xué)們學(xué)習(xí) FastAPI 框架的所有知識(shí)點(diǎn)。從框架特性一覽,到 ASGI 服務(wù)介紹,以全球新冠病毒感染數(shù)據(jù)查詢(xún)?yōu)楣δ軋?chǎng)景,依次講解 FastAPI 的 API 交互文檔使用,如何使用 Pydantic 定義和規(guī)范數(shù)據(jù)格式、類(lèi)型,各種請(qǐng)求參數(shù)和驗(yàn)證,Jinja2 模板渲染和 Static 靜態(tài)文件配置,F(xiàn)astAPI 的響應(yīng)處理和配置,通過(guò)代碼示例講解依賴(lài)注入系統(tǒng)的所有知識(shí),數(shù)據(jù)庫(kù)配置與 SQLAlchemy 的使用,大型工程應(yīng)該如何設(shè)計(jì)目錄結(jié)構(gòu)。
框架的安全、認(rèn)證、授權(quán),中間件開(kāi)發(fā),跨域資源共享的實(shí)現(xiàn),后臺(tái)任務(wù)和測(cè)試用例的編寫(xiě)。
第1章 課程介紹
介紹本課程的學(xué)習(xí)內(nèi)容和目標(biāo),如何學(xué)習(xí)本課程,展示最終代碼和效果,引導(dǎo)同學(xué)們對(duì) FastAPI 框架有一個(gè)基本的了解,并能夠在課程結(jié)束后獨(dú)立使用 FastAPI 完成 RESTful API 接口開(kāi)發(fā)
第2章 FastAPI介紹和項(xiàng)目準(zhǔn)備
在學(xué)習(xí) FastAPI 之前,先給大家介紹其相關(guān)的內(nèi)容,如框架的優(yōu)點(diǎn),起源(與Pydantic/Starlette的關(guān)系),部署用到的服務(wù)。然后再講項(xiàng)目開(kāi)發(fā)環(huán)境的搭建,最后是Pydantic包用法的講解。
- 視頻: 2-1 為什么新秀 FastAPI 火成這樣? (05:23)
- 視頻: 2-2 Starlette,Pydantic 與 FastAPI 框架是什么關(guān)系? (05:55)
- 視頻: 2-3 ASGI 服務(wù) Uvicorn 和 Hypercorn 介紹 (02:13)
- 視頻: 2-4 搭建 FastAPI 項(xiàng)目開(kāi)發(fā)環(huán)境 (01:57)
- 視頻: 2-5 經(jīng)驗(yàn)分享-Python 項(xiàng)目開(kāi)發(fā)中包的版本問(wèn)題 (03:17)
- 視頻: 2-6 Pydantic 基礎(chǔ)教程 (24:41)
第3章 請(qǐng)求參數(shù)和驗(yàn)證
本章先講 FastAPI 程序的編碼方式,它自帶的 API 交互文檔 Swagger UI,然后講解 FastAPI 框架如何給后端傳遞參數(shù),包括:路勁參數(shù)、參數(shù)參數(shù)、Body請(qǐng)求體、Cookie和Header參數(shù)。還有不同參數(shù)類(lèi)型的組合使用。
- 視頻: 3-1 hello world 接口給后端傳 COVID-19 感染數(shù)據(jù) (11:17)
- 視頻: 3-2 FastAPI 的 API 交互文檔 - Swagger UI 和 ReDoc (05:23)
- 視頻: 3-3 路徑參數(shù)和數(shù)據(jù)的解析、驗(yàn)證 (19:51)
- 視頻: 3-4 查詢(xún)參數(shù)和數(shù)據(jù)的解析、驗(yàn)證 (06:07)
- 視頻: 3-5 請(qǐng)求體以及混合參數(shù) (09:20)
- 視頻: 3-6 如何定義數(shù)據(jù)格式嵌套的請(qǐng)求體? (03:22)
- 視頻: 3-7 如何設(shè)置 Cookie 和 Header 參數(shù)? (06:07)
第4章 響應(yīng)處理和FastAPI配置
本章講解 FastAPI 框架的響應(yīng) Response,包括響應(yīng)模型類(lèi)和狀態(tài)碼。還有表單數(shù)據(jù)處理、上傳文件、路徑操作配置。FastAPI 應(yīng)用的配置,錯(cuò)誤處理。
- 視頻: 4-1 響應(yīng)模型示例精講 (14:03)
- 視頻: 4-2 響應(yīng)狀態(tài)碼和快捷屬性 (02:32)
- 視頻: 4-3 表單數(shù)據(jù)處理 (02:40)
- 視頻: 4-4 單文件、多文件上傳及參數(shù)詳解 (07:05)
- 視頻: 4-5 FastAPI 項(xiàng)目的靜態(tài)文件配置 (04:21)
- 視頻: 4-6 路徑操作配置(Path Operation Configuration) (05:23)
- 視頻: 4-7 FastAPI 應(yīng)用的常見(jiàn)配置項(xiàng) (01:54)
- 視頻: 4-8 FastAPI 框架的錯(cuò)誤處理 (09:27)
第5章 FastAPI的依賴(lài)注入系統(tǒng)
本章專(zhuān)門(mén)講解 FastAPI 的依賴(lài)注入系統(tǒng),從概念、原理到開(kāi)發(fā)套路。
- 視頻: 5-1 依賴(lài)注入系統(tǒng)介紹和使用場(chǎng)景 (05:20)
- 視頻: 5-2 創(chuàng)建、導(dǎo)入和聲明依賴(lài) (03:57)
- 視頻: 5-3 如何將類(lèi)作為依賴(lài)項(xiàng)? (05:03)
- 視頻: 5-4 子依賴(lài)的創(chuàng)建和調(diào)用 (03:33)
- 視頻: 5-5 路徑操作裝飾器中導(dǎo)入依賴(lài) (04:48)
- 視頻: 5-6 FastAPI 框架中全局依賴(lài)的使用 (01:31)
- 視頻: 5-7 使用 yield 的依賴(lài)和子依賴(lài) (04:33)
第6章 安全、認(rèn)證和授權(quán)
本章會(huì)先圖文講解 OAuth 2.0 的概念和原理,然后 FastAPI 框架中實(shí)現(xiàn) OAuth 2.0 的密碼模式認(rèn)證和 JWT 認(rèn)證。
第7章 FastAPI的數(shù)據(jù)庫(kù)操作和多應(yīng)用的目錄結(jié)構(gòu)設(shè)計(jì)
這章代碼量較多,主要是開(kāi)發(fā) Coronavirus 應(yīng)用,實(shí)現(xiàn)課程開(kāi)頭部分大家看到的效果。過(guò)程中會(huì)講解到數(shù)據(jù)庫(kù)的配置,SQLAlchemy ORM的開(kāi)發(fā),Jinja2模板的開(kāi)發(fā)。最后還有一個(gè)關(guān)于工程知識(shí)點(diǎn),項(xiàng)目目錄有結(jié)構(gòu)的優(yōu)化。
- 視頻: 7-1 FastAPI 項(xiàng)目中配置 SQLAlchemy ORM (09:58)
- 視頻: 7-2 SQLAlchemy 開(kāi)發(fā) COVID-19 模型類(lèi) (09:51)
- 視頻: 7-3 使用 Pydantic 建立與模型類(lèi)對(duì)應(yīng)的數(shù)據(jù)格式類(lèi) (03:57)
- 視頻: 7-4 把創(chuàng)建和查詢(xún) COVID-19 數(shù)據(jù)封裝成函數(shù) (08:01)
- 視頻: 7-5 開(kāi)發(fā) COVID-19 感染數(shù)據(jù)查詢(xún)接口 (16:36)
- 視頻: 7-6 Jinja2 模板渲染前端頁(yè)面 (19:06)
- 視頻: 7-7 大型工程的目錄結(jié)構(gòu)設(shè)計(jì) - 應(yīng)用文件拆分 (06:30)
第8章 中間件、CORS、后臺(tái)任務(wù)、測(cè)試用例
這章把4個(gè)零散的知識(shí)點(diǎn)放在一起,都分別實(shí)現(xiàn)一些的簡(jiǎn)單的示例,便于大家理解。后臺(tái)任務(wù)的部分,會(huì)把 Coronavirus 應(yīng)用中的后臺(tái)同步數(shù)據(jù)功能完成。